package com.hsh.graph
{
	
	/**
	 * Constantes d'état : Légèreté et efficacité...
	 * @author Jean-Marie@home
	 */
	public class Etat
	{
		static public const SORTIE:Etat = new Etat(SORTIE, "quitté", 0);
		static public const SURVOL:Etat = new Etat(SURVOL, "survolé", 1);
		static public const ENFONCEMENT:Etat = new Etat(ENFONCEMENT, "enfoncé", 2);
		static public const RELACHEMENT:Etat = new Etat(RELACHEMENT, "relâché", 4);
		static public const CLIC:Etat = new Etat(CLIC, "cliqué", 8); 
		static public const PRESSION:Etat = new Etat(PRESSION, "pressé", 16);
		static public const MOLETTE:Etat = new Etat(MOLETTE, "molette", 32);
		static public const CLIC_DROIT:Etat = new Etat(CLIC_DROIT, "cliqué droit", 64);
		static public const MOUVEMENT:Etat = new Etat(MOUVEMENT, "déplacé", 128);//mouvement autonome	
		static public const DIMENSION:Etat = new Etat(DIMENSION, "redimensionné", 256);// autonome
		static public const TRANSPORT:Etat = new Etat(TRANSPORT, "transporté",512);//mouvement par un autre visuel
		static public const TAILLE:Etat = new Etat(TAILLE, "taillé", 1024);// redimensionnement par un autre visuel

		private var _id:String, _val:uint;
		
		/**
		 * États de la souris 
		 * @param	e	état
		 * @param	id	identifiant
		 * @param	val	valeur numérique
		 */
		public function Etat(e:Etat, id:String, val:uint)
		{
			_id = id;
			_val = val;
		}
		/**
		 * Texte de l'état
		 * @return la valeur textuelle
		 */
		public function toString():String
		{
			return _id;
		}
		/**
		 * Valeur de l'état
		 * @return la valeur numérique
		 */
		public function valueOf():uint
		{
			return _val;
		}
	}
}